package com.wlhse.dao;

import com.wlhse.dto.getDto.AddTaskGetDto;
import com.wlhse.dto.inDto.SuperVisionTaskPersonInDto;
import com.wlhse.dto.inDto.SupervisionTaskDetailInDto;
import com.wlhse.entity.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;


@Repository
public interface TaskAddDao {
    //添加任务到三张表
    void addTask(SupervisionTaskPojo2 supervisionTaskPojo2);
    void addTaskDetail(SupervisionTaskDetailInDto supervisionTaskDetailInDto);
    void addTaskPerson(SuperVisionTaskPersonInDto SuperVisionTaskPersonInDto);

    List<SuperVisionGroupMemberPojo> getStaffName(String id);
    EmployeePojo queryEmployeeName(Integer userid);
    List<DataDictPojo> getArea();//获得所有监管区域：比如陇东、定边等
    List<SuperVisionScopePojo> getPerson(String dictcode);//根据区域code查询员工

    //通过员工名和任务类型来查询员工监管范围
    List<SuperVisionScopePojo> getteam(@Param("staffName") String staffName,@Param("type") String type);
    List<SuperVisionScopePojo> getgroup(@Param("staffName") String staffName,@Param("type") String type);
    List<SuperVisionScopePojo> getlocation(@Param("staffName") String staffName,@Param("type") String type);
    List<SuperVisionScopePojo2> getkey(@Param("staffName") String staffName,@Param("type") String type);
    List<SuperVisionScopePojo2> getcheck(@Param("staffName") String staffName,@Param("type") String type);

    List<SuperVisionScopePojo> gettask();
    Integer querytaskIdByCode(String taskcode);
    Integer queryStaffIdByName(String name);

    //查询员工上次任务的起止时间
    String queryStartDateByName(String execStaffName);
    String queryEndDateByName(String execStaffName);
    Integer queryCurrentRound();

    //查询当前任务的细节
    List<SupervisionTaskDetailInDto> queryCurrentTaskDetail(@Param("taskCode") String taskCode,@Param("type") String type);
    SupervisionTaskPojo queryCurrentTaskDate(@Param("taskCode") String taskCode);

    //查询数据库中作业队、辅助班组等的范围
    List<SuperVisionAreaCompany> queryTaskScope(@Param("areaname") String areaname,@Param("type") String type);
    List<SuperVisionScopePojo2> queryTaskScope2(String type);

    //删除该任务code下所有的任务
    void deleteByCode(String supervisionTaskCode);

    //修改任务时间
    Integer updateTaskDate(AddTaskGetDto addTaskGetDto);
}
